1. Field Of The Invention
The present invention relates to an emulation of a first computer system by a second, substantially different such system and, in particular, in such a manner as to enable the second system to run, without modification, software programs developed for the first system.
2. Prior Art
A recurring problem in computer systems is that of software availability and, in particular, the availability of applications software, that is, programs which are run on or executed by systems in order to perform particular tasks for users. Examples of such applications programs include word and data processing, data bases, graphics and spread sheets and encompass the full range of tasks and functions which a user would wish to accomplish with such a system.
The potential range of applications for a particular system are such that it is extremely difficult for a single system manufacturer to develop more than a basic range of applications programs for its systems. The remainder, and often the majority of applications programs, are commonly developed and provided by companies specializing in the development of applications programs. For economic reasons, such applications program developers usually concentrate their available resources upon the more common computer systems. While applications program developers may wish to provide programs for the less common but still economically significant systems, their available resources may not allow the development of programs for a full range of different systems. As such, the range of applications programs for other than the few most common systems may be limited.
This problem has frequently been described as one of program "transportability", that is, the ability to "transport" a program from one system to a second, differing system without the need to rewrite or extensively modify the program. A partial solution to this problem which has been adopted by the computer industry, and in particular for the smaller "personal" or "professional" computers, is the development of standardized operating systems which are used on a wide range of internally different computers. In this regard, it should be noted that operating systems essentially supervise, direct and control the overall operation of a computer system upon which it is "run". In addition, an operating system provides an interface between an applications program being run upon a system and the actual internal structure of the system itself. Essentially, the applications program "runs on" and "sees" the operating system and not the actual underlying computer system structure. The adoption of such common, standard operating systems, such as CP/M and MS-DOS, which are run upon a number of internally differing systems thereby theoretically allowing the development of programs which will also run upon those systems without modifications. By way of example, both the Wang Laboratories Professional Computer and the IBM Personal Computer (PC) use essentially the same operating system, referred to as MS-DOS. An applications program developed for the IBM Personal Computer (PC) should therefore be theoretically able to run upon the Wang Professional Computer without modification, and the reverse.
In practice, such operating systems frequently do not provide the full range of features and functions desired by applications program developers, or do not provide adequate performance in programs which interface with a system only through the operating system. Because of this, many if not most applications programs are in fact written so as to interface, at least in part, directly with the internal structures of the systems on which they are to be run. Because the internal structures of computer systems provided by different manufacturers differ, often widely, even applications programs written primarily to run on one of the standard operating systems are often not in fact "transportable" from one system to another.
In addition, many manufacturers have modified the "standard" oprating systems for enhanced performance upon their particular systems. For example, as described above, both Wang Laboratories and IBM use the same basic standard MS-DOS operating system in their personal and professional computers. In each case, however, MS-DOS has been modified to enhance performance on the particular systems designed by Wang and IBM and are no longer completely "standard". Such modifications are usually dependent upon the particular internal structural features of the particular systems and are subsequently reflected in the applications programs written for the particular systems. Consequently, even applications programs which interface only with a "standard" operating system running on a particular system are often not transportable to another system which uses yet another modified version of that "standard" operating system.
One possible solution to these problems is for a manufacturer to essentially duplicate, without necessarily copying, the internal structures of a system to be emulated. This requires the development of both the hardware structure of the emulating system and the development of an operating system for the emulating system which essentially duplicates the functionality of the operating system of the system to be emulated. This approach may be undesirable, however, in that the system emulated may be obsolete or otherwise lacking or inferior in performance. Also, the emulating system and its operating system are essentially dedicated to a single purpose, that of emulating another system, rather than having broader utility.
Yet another possible solution to the above problems is the emulation of a particular system by means of software, that is, emulation programs, running upon a system which is to emulate that system. This approach may, however, prove undesirable because of the possibly extensive "overhead", that is, memory space and processor operation time, required for the emulation function.